Memory is one of the key driving factors in embedded system design since a larger memory indicates an increased chip area, more power dissipation, and higher cost. As a result, memory imposes constraints on the size of the application programs. Code compression techniques address the problem by reducing the program size. Dictionary-based code compression techniques are popular because they offer both a good compression ratio and fast decompression. A conventional code compression and decompression flow involves compression of the data prior to execution, and the compressed data is stored in memory. At execution time, the processor will fetch blocks of compressed data from memory and process those blocks through a decompression process during run time.
Conventionally, data decompression in a system requires a decompression engine or mechanism, a processor, and memory. The memory may be on-chip (but this translates into substantially higher hardware cost) or it may be off-chip (but translates into a high-latency). Since the chip area required for memory is very large, the memory is typically located remote from the processor to save processor chip area. A conventional decompression engine uses a mix of techniques to decompress, such as dictionaries containing the most frequently occurring words, references to previously decoded words (“LookBack”), and encoding uncompressible words directly. However, the decompression engine must access the memory for most of these operations. The latency to access remote memory is typically high. For example, the latency to send a request to access memory and return the data from the accessed memory location can take 60 clock cycles. Thus, conventional data decompression suffers from memory access latency that increases the total time required to decode a data block.
Accordingly, there is a need for systems, apparatus, and methods that improve upon conventional data decompression by reducing the memory access latency including the improved systems, methods, and apparatus provided hereby.
The inventive features that are characteristic of the teachings, together with further features and advantages, are better understood from the detailed description and the accompanying figures. Each of the figures is provided for the purpose of illustration and description only, and does not limit the present teachings.